package com.yxy.service;

import com.yxy.common.PageResult;
import com.yxy.pojo.dto.UserDTO;
import com.yxy.pojo.dto.UserLoginDTO;
import com.yxy.pojo.dto.UserPageQueryDTO;
import com.yxy.pojo.entity.User;
import com.yxy.pojo.vo.UserVO;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserService {
    /**
     * 分页查询用户信息
     * @param userPageQueryVO
     * @return
     */
    PageResult pageQuery(UserPageQueryDTO userPageQueryDTO);

    /**
     * 新增用户
     * @param userDTO
     */
    void add(UserDTO userDTO);

    /**
     * 修改用户状态
     * @param id
     * @param status
     */
    void updateStatus(int id, int status);

    /**
     * 批量删除用户
     * @param ids
     */
    void batchDelete(List<Integer> ids);

    /**
     * 修改用户信息
     * @param userDTO
     */
    void update(UserDTO userDTO);

    /**
     * 用户登录
     * @param userLoginDTO
     * @return
     */
    User login(UserLoginDTO userLoginDTO);

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    UserVO getUserById(int id);

    /**
     * 验证密码
     * @param password
     * @return
     */
    Boolean verifyPwd(Integer userId, String password);

    /**
     * 增加访问量
     * @param userId
     */
    void addVisitor(int userId);

    /**
     * 校验手机号
     * @param username
     * @param phone
     * @return
     */
    Boolean verifyPhone(String username, String phone);

    /**
     * 重置密码
     * @param userDTO
     */
    void resetPwd(UserDTO userDTO);
}
